var cPushArray = new Array();
var cStep = -1;

// Funktion zum saven des Canvas Zustandes in einem Array um Undo zu unterstützen
function save(canvasId) {
    cStep++;
    if (cStep < cPushArray.length) { 
        cPushArray.length = cStep; 
    }
    cPushArray.push(document.getElementById(canvasId).toDataURL());
}

// Funktion zum zurücksetzen der letzten Action
function undo() {
    if (cStep > 0) {
        cStep--;
        var canvasPic = new Image();
        canvasPic.src = cPushArray[cStep];
        canvasPic.onload = function () { 
            context.drawImage(canvasPic, 0, 0); 
        }
    }
}

// Funktion zum reseten auf Anfangsbild
function reset() {
    var canvasPic = new Image();
    canvasPic.src = cPushArray[0];
    canvasPic.onload = function () { 
        context.drawImage(canvasPic, 0, 0); 
    }
   
}

// Shake undo Unterstützung
window.addEventListener('shake', undo, false);